extension StringPhone on String {
  String get phone {
    var mobile = this;
    if (mobile.length > 4) {
      var sufixLength = (mobile.length - 4) ~/ 2;
      var prefixLength = mobile.length - 4 - sufixLength;
      return '${mobile.substring(0, prefixLength)}****${mobile.substring(mobile.length - sufixLength, mobile.length)}';
    } else {
      return mobile;
    }
  }
}

///大陆手机号码11位数，匹配格式：前三位固定格式+后8位任意数
/// 此方法中前三位格式有：
/// 13+任意数 * 15+除4的任意数 * 18+除1和4的任意数 * 17+除9的任意数 * 147
bool isPhoneLegal(String str) {
  return RegExp(
          '^((13[0-9])|(15[^4])|(166)|(17[0-8])|(18[0-9])|(19[8-9])|(147,145))\\d{8}\$')
      .hasMatch(str);
}

bool isZeroList(List? a) {
  if (a == null) {
    return true;
  }

  if (a.isEmpty) {
    return true;
  }
  return false;
}

extension StringUrl on String {
  Map<String, String> get param {
    Map<String, String> p = {};
    var args = split('?').last.split('&');
    for (var i = 0; i < args.length; i++) {
      var m = args[i];
      var n = m.split('=');
      p[n.first] = n.last;
    }
    return p;
  }
}
